/**
 * @Copyright ®2015 Sinosoft Co. Ltd. All rights reserved.<br/>
 * 项目名称 : 中科软支付平台
 * 创建日期 : 2016年12月15日
 * 修改历史 : 
 *     1. [2016年12月15日]创建文件 by liuyujia
 */
package com.sinosoft.sinopay.web.util;

import java.math.BigDecimal;

import com.sinosoft.sinocloud.platform.common.util.MathUtil;

/**  
 * 【金额转换工具类】
 * @author liuyujia
 * @date 2016年12月15日 上午11:06:25 
 * @version V1.0  
 */
public class AmountTransUtil {
	/**
	 * 金额元转分
	 * @param tPayAmount
	 * @return
	 */
	public String transAmount(BigDecimal tPayAmount){
	         BigDecimal fen = tPayAmount.multiply(new BigDecimal("100"));
	         long fenAmount = fen.intValue();
	         String money = String.valueOf(fenAmount);
		return money;
		
	}
	
	/**
	 * 金额分转元
	 * @param o
	 * @return
	 */
	public String fenToYuan(Object o) {  
        if(o == null)  
            return "0.00";  
        String s = o.toString();  
        int len = -1;     
        StringBuilder sb = new StringBuilder();  
        if (s != null && s.trim().length()>0 && !s.equalsIgnoreCase("null")){  
            s = removeZero(s);  
            if (s != null && s.trim().length()>0 && !s.equalsIgnoreCase("null")){  
                len = s.length();  
                int tmp = s.indexOf("-");  
                if(tmp>=0){  
                    if(len==2){  
                        sb.append("-0.0").append(s.substring(1));  
                    }else if(len==3){  
                        sb.append("-0.").append(s.substring(1));  
                    }else{  
                        sb.append(s.substring(0, len-2)).append(".").append(s.substring(len-2));                  
                    }                         
                }else{  
                    if(len==1){  
                        sb.append("0.0").append(s);  
                    }else if(len==2){  
                        sb.append("0.").append(s);  
                    }else{  
                        sb.append(s.substring(0, len-2)).append(".").append(s.substring(len-2));                  
                    }                     
                }  
            }else{  
                sb.append("0.00");  
            }  
        }else{  
            sb.append("0.00");  
        }  
        return sb.toString();         
    }
	private static String removeZero(String str) {
		char  ch;    
        String result = "";  
        if(str != null && str.trim().length()>0 && !str.trim().equalsIgnoreCase("null")){                  
            try{              
                for(int i=0;i<str.length();i++){  
                    ch = str.charAt(i);  
                    if(ch != '0'){                        
                        result = str.substring(i);  
                        break;  
                    }  
                }  
            }catch(Exception e){  
                result = "";  
            }     
        }else{  
            result = "";  
        }  
        return result;  
	} 
}
